namespace BTSPracCOurse.BAM.Sample {
    using Microsoft.XLANGs.BaseTypes;
    
    
    [SchemaType(SchemaTypeEnum.Document)]
    [Schema(@"http:/www.MoustafaRefaat.com/BTSPracCourse",@"PurchaseOrder")]
    [System.SerializableAttribute()]
    [SchemaRoots(new string[] {@"PurchaseOrder"})]
    public sealed class PurchaseOrderSchema : Microsoft.XLANGs.BaseTypes.SchemaBase {
        
        [System.NonSerializedAttribute()]
        private static object _rawSchema;
        
        [System.NonSerializedAttribute()]
        private const string _strSchema = @"<?xml version=""1.0"" encoding=""utf-16""?>
<xs:schema xmlns:b=""http://schemas.microsoft.com/BizTalk/2003"" xmlns=""http:/www.MoustafaRefaat.com/BTSPracCourse"" targetNamespace=""http:/www.MoustafaRefaat.com/BTSPracCourse"" xmlns:xs=""http://www.w3.org/2001/XMLSchema"">
  <xs:element name=""PurchaseOrder"">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs=""1"" maxOccurs=""1"" name=""Header"">
          <xs:complexType>
            <xs:attribute default=""0"" name=""ClientID"" type=""xs:int"" />
            <xs:attribute default=""0"" name=""SpecialDiscount"" type=""xs:int"" use=""optional"" />
            <xs:attribute name=""PurchaseOrderID"" type=""xs:string"" />
            <xs:attribute name=""PODate"" type=""xs:dateTime"" />
          </xs:complexType>
        </xs:element>
        <xs:element minOccurs=""1"" maxOccurs=""unbounded"" name=""LineItem"">
          <xs:complexType>
            <xs:attribute name=""ID"" type=""xs:int"" />
            <xs:attribute name=""Quantity"" type=""xs:int"" />
            <xs:attribute name=""Price"" type=""xs:int"" use=""optional"" />
            <xs:attribute default=""0"" name=""DiscountRate"" type=""xs:int"" use=""optional"" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>";
        
        public PurchaseOrderSchema() {
        }
        
        public override string XmlContent {
            get {
                return _strSchema;
            }
        }
        
        public override string[] RootNodes {
            get {
                string[] _RootElements = new string [1];
                _RootElements[0] = "PurchaseOrder";
                return _RootElements;
            }
        }
        
        protected override object RawSchema {
            get {
                return _rawSchema;
            }
            set {
                _rawSchema = value;
            }
        }
    }
}
